﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Conexion;
using System.Data.SqlClient;
using AccesoDatos.Objetos;

namespace AccesoDatos.Manejador
{
    public class Manejador_Bonos
    {
        ClsConexion conexion = new ClsConexion();
        public DataTable ObtieneLista_Bono(string id_sucursal, string mes, string year )
        {
            List<ClsParametros> lista = new List<ClsParametros>();

            lista.Add(new ClsParametros("@sucursal", id_sucursal));
            lista.Add(new ClsParametros("@mes", mes));
            lista.Add(new ClsParametros("@year", year));
            DataTable X = conexion.Datatable_standart("sp_RH_Bono_Lista", lista);

            return X;
        }
        public DataTable ObtieneLista_NOBono(string id_sucursal, string buscar)
        {
            List<ClsParametros> lista = new List<ClsParametros>();

            lista.Add(new ClsParametros("@id_sucursal", id_sucursal));
            lista.Add(new ClsParametros("@Buscar", buscar));
            DataTable X = conexion.Datatable_standart("sp_RH_Bono_Personas_Sin", lista);

            return X;
        }

        public DataTable ObtieneMes()
        {
            DataTable X = conexion.Datatable_standart("sp_RH_Bono_Obtiene_Mes" );

            return X;
        }
        public DataTable ObtieneAnio()
        {
            DataTable X = conexion.Datatable_standart("sp_RH_Bono_Obtiene_Anio");

            return X;
        }
        public objBono ObtieneDatosBono(int id_bono) {
         try
            {
                    objBono obj = new objBono();

                    List<ClsParametros> lista = new List<ClsParametros>();

                    lista.Add(new ClsParametros("@id_bono", id_bono.ToString()));
                    DataTable X = conexion.Datatable_standart("sp_RH_Bono_Consulta", lista);
                    DataRow[] array = new DataRow[X.Rows.Count];
                    X.Rows.CopyTo(array, 0);
                    object[] Info = X.Rows[0].ItemArray;
                    obj.Id_bono = int.Parse(Info[0].ToString().Trim());
                    obj.Id_revisado = int.Parse(Info[2].ToString().Trim());
                    obj.Aprobado = Double.Parse(Info[3].ToString().Trim());
                    obj.Pagar = Double.Parse(Info[4].ToString().Trim());
                   // obj.Pagado = int.Parse(Info[5].ToString().Trim());
                    obj.Mes = Info[6].ToString().Trim();
                    obj.Year = int.Parse(Info[7].ToString().Trim());
                    obj.tipo = Info[8].ToString().Trim();
                    
                    return obj;
                }
                catch { return null; }
        }
        public objRH ObtieneDatosSueldo(int id_empleado) 
        {
            try
            {
                objRH obj = new objRH();

                List<ClsParametros> lista = new List<ClsParametros>();

                lista.Add(new ClsParametros("@id_empleado", id_empleado.ToString()));
                DataTable X = conexion.Datatable_standart("sp_RH_Empleado_Sueldo", lista);
                DataRow[] array = new DataRow[X.Rows.Count];
                X.Rows.CopyTo(array, 0);
                object[] Info = X.Rows[0].ItemArray;
                obj.IdSueldo= int.Parse(Info[0].ToString().Trim());
                obj.Id_Empleado = int.Parse(Info[1].ToString().Trim());
                obj.Sueldo_Mensual = Info[2].ToString().Trim();
                obj.Sueldo_Quincenal = Info[3].ToString().Trim();
           
                obj.Bono = Info[6].ToString().Trim();
                obj.Salario_dia = Info[7].ToString().Trim();
                return obj;
            }
            catch { return null; }
        }
        public objBono ObtieneTotales(string id_sucursal, string mes, string year)
        {
            try
            {
                objBono obj = new objBono();
            List<ClsParametros> lista = new List<ClsParametros>();

            lista.Add(new ClsParametros("@sucursal", id_sucursal));
            lista.Add(new ClsParametros("@mes", mes));
            lista.Add(new ClsParametros("@year", year));
            DataTable X = conexion.Datatable_standart("sp_RH_Bono_Sumatorias", lista);

            DataRow[] array = new DataRow[X.Rows.Count];
            X.Rows.CopyTo(array, 0);
            object[] Info = X.Rows[0].ItemArray;
            obj.TotalBono = Double.Parse(Info[0].ToString().Trim());
            obj.Total = Double.Parse(Info[1].ToString().Trim());
            obj.Total_Mensual = Double.Parse(Info[2].ToString().Trim());
            obj.Total_pagar = Double.Parse(Info[3].ToString().Trim());
                    
            return obj;
            }
            catch { return null; }
        }
        public bool GuardaBono(int id_Bono, double aprobado, double pagar) 
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();

                //cat_empleados
                lista.Add(new ClsParametros("@id_Bono",id_Bono.ToString()));
                lista.Add(new ClsParametros("@aprobado", aprobado.ToString()));
                lista.Add(new ClsParametros("@pagar", pagar.ToString()));
      	
                bool resp = conexion.Procedure_standart("sp_RH_Bono_Inserta_Aprobado_Monto", lista);
                return true;
            }
            catch
            {
                return false;
            }
        }

        public bool GuardaBono_Extra(int id_empleado, int id_revisado, string pagar, string mes, int year)
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();

                //cat_empleados
                lista.Add(new ClsParametros("@id_empleado", id_empleado.ToString()));
                lista.Add(new ClsParametros("@id_revisado", id_revisado.ToString()));
                lista.Add(new ClsParametros("@pagar", pagar.ToString()));
                lista.Add(new ClsParametros("@mes",mes));
                lista.Add(new ClsParametros("@year", year.ToString()));
                bool resp = conexion.Procedure_standart("sp_RH_Bono_Insertar_extra", lista);
                return true;
            }
            catch
            {
                return false;
            }
        }
        }
}
